#include "function.h"
#include "gps.h"
#include "log.h"
#include "thread_simple.h"
int main(int argc,const char*argv[])
{
    int menu;
    // 一次性初始化所有系统
    threads_init();      // 包含log_init()和线程启动
    start_all_threads(); // 启动所有后台线程
    while(1)
    {
        printf("1.多媒体播放控制\n");
        printf("2.车辆状态实时显示\n");
        printf("3.GPS导航模拟与轨迹记录\n");
        printf("4.系统状态日志记录\n");
        printf("5.退出菜单\n");
        printf("请选择菜单：");
        scanf("%d",&menu);
        getchar();
        
        switch(menu)
        {
            case 1:
            {
                log_init();  // 初始化日志系统
                int exit_player = 0;

                while(!exit_player)
                {
                    int choice;
                    printf("1.音乐播放\n");
                    printf("2.暂停音乐\n");
                    printf("3.下一首\n");
                    printf("4.上一首\n");
                    printf("5.退出播放器\n");
                    printf("请选择功能:");
                    scanf("%d",&choice);
                    getchar();

                    switch(choice)
                    {
                        case 1:
                        player_play();
                        break;

                        case 2:
                        player_pause();
                        break;

                        case 3:
                        player_next();
                        break;

                        case 4:
                        player_prev();
                        break;

                        case 5:
                        exit_player = 1;
                        break;
                    }
                }
                log_close();
            }
            break;

            case 2:
            {
                log_init();
                VehicleStatus car;
                srand(time(NULL));//随机种子

                printf("车辆情况：\n");
                //每俩秒更新一次，一共五次
                for(int i = 0;i < 5;i++)
                {
                    update(&car);
                    display(&car);
                    sleep(2);//延时2秒
                }
                log_close();
                break;
            }

            case 3:
            gpsmoni();
            break;

            case 4:
            log_print_all();
            break;

            case 5:
             // 退出系统
            printf("正在退出系统...\n");
            stop_all_threads();  // 停止所有线程
            threads_cleanup();   // 清理资源
            printf("退出成功\n");
            return 0;
        }
    }
}